import CryptoJS from 'crypto-js';

// export default {
    //随机生成指定数量的16进制key
    // generatekey(num) {
    //     let library = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
    //     let key = "";
    //     for (var i = 0; i < num; i++) {
    //         let randomPoz = Math.floor(Math.random() * library.length);
    //         key += library.substring(randomPoz, randomPoz + 1);
    //     }
    //     return key;
    // },

    //加密
    // encrypt(word, ) {
    //     var keyStr ='iXCuL8Asn0eX4YVE'; //判断是否存在ksy，不存在就用定义好的key
    //     var key = CryptoJS.enc.Utf8.parse(keyStr);
    //     var srcs = CryptoJS.enc.Utf8.parse(word);
    //     var encrypted = CryptoJS.AES.encrypt(srcs, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });
    //     return encrypted.toString();
    // },
    //解密
    // decrypt(word:string, keyStr:string) {
    //     keyStr = keyStr ? keyStr : 'iXCuL8Asn0eX4Y33';
    //     var key = CryptoJS.enc.Utf8.parse(keyStr);
    //     var iv1 = CryptoJS.enc.Utf8.parse("AD42F6697B035B7580E4FEF93BE20BAD");
    //     // let words = CryptoJS.enc.Base64.parse(word)
    //     var decrypt = CryptoJS.AES.decrypt(word, key, { 
    //         iv:iv1,
    //         mode: CryptoJS.mode.CBC, 
    //         padding: CryptoJS.pad.Pkcs7,
    //     });
    //     const unpadded = CryptoJS.lib.WordArray.create(decrypt.words.slice(0, decrypt.sigBytes / 4));
    //     return JSON.parse(decrypt.toString(CryptoJS.enc.Utf8).slice(16));
    //     // return JSON.parse(unpadded.toString(CryptoJS.enc.Utf8));
    //     // return decrypt.toString(CryptoJS.enc.Hex); 
    //     // return decrypt;
    // }

// }

export function decrypt<T>(
  word:string,
  keyStr:string
){
  keyStr = keyStr ? keyStr : 'iXCuL8Asn0eX4Y33';
  var key = CryptoJS.enc.Utf8.parse(keyStr);
  var iv1 = CryptoJS.enc.Utf8.parse("AD42F6697B035B7580E4FEF93BE20BAD");
  // let words = CryptoJS.enc.Base64.parse(word)
  var decrypt = CryptoJS.AES.decrypt(word, key, { 
      iv:iv1,
      mode: CryptoJS.mode.CBC, 
      padding: CryptoJS.pad.Pkcs7,
  });
  const unpadded = CryptoJS.lib.WordArray.create(decrypt.words.slice(0, decrypt.sigBytes / 4));
  return JSON.parse(decrypt.toString(CryptoJS.enc.Utf8).slice(16));
}
